package com.mcp.converter.domain.converter;

import com.mcp.converter.domain.checker.CompatibilityResult;
import com.mcp.converter.domain.checker.IncompatiblePoint;
import com.mcp.converter.shared.response.sql.SQLParseResult;

/**
 * SQL转换引擎接口
 * 负责将不兼容的Oracle SQL语句转换为OceanBase兼容的SQL语句
 */
public interface SQLConverter {
    
    /**
     * 转换SQL语句
     * @param parseResult SQL解析结果
     * @param compatibilityResult 兼容性检测结果
     * @return SQL转换结果
     */
    ConversionResult convert(SQLParseResult parseResult, CompatibilityResult compatibilityResult);
    
    /**
     * 获取转换建议
     * @param incompatiblePoint 不兼容点
     * @return 转换建议
     */
    ConversionSuggestion getSuggestion(IncompatiblePoint incompatiblePoint);
}
